In C, the keyword 'struct' is used to define a new type of DATA STRUCTURE of the programmer's choice. That is, a variable defined with this new type can represent a collection (record) of integer, character, and floating-point variables, called "members". This collection is described in a list enclosed by {} braces.
TC and C++ extend this idea so that the data structure may be a CLASS. Objects defined with this type represent a collection of instance variables AND the methods - or "member functions" - which may act upon them. In this case, when an object of type Person is defined later in the program, space will be allocated for two integer variables which may be accessed by sending set and print messages to the object.
The word 'indirect' is unique to TC, and specifies how TC should implement objects of this type. (The other - less frequently used - option is 'direct'.) The significance of this implementation will be discussed later*.